package com.zrh.jsd.web.controller;

import com.zrh.jsd.common.model.UserRecord;
import io.swagger.annotations.*;
import io.swagger.v3.oas.annotations.parameters.RequestBody;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;

import java.util.List;


@Api(tags = "类用途描述：用户信息管理", value = "据说不显示,并且是真的")
@RestController
@Slf4j
@RequestMapping("userRecord")
public class UserRecordController {

    /**
     * 分页查询所有数据
     *
     * @param
     * @param userRecord 查询实体
     * @return 所有数据
     */
    @ApiOperation("方法用途描述：分页查询所有数据")
    @GetMapping("page")
    public String selectAll() {
        log.info("selectAll====zrh");
        return "123";
    }

    /**
     * 通过主键查询单条数据
     *
     * @param 主键
     * @return 单条数据
     */
    @ApiOperation(value = "方法用途描述：通过主键查询单条数据", notes = "这里是notes，方法的备注说明")
    @ApiImplicitParam(name = "id", value = "主键")
    @ApiResponses({
            @ApiResponse(code = 400, message = "请求参数没填好"),
            @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")
    })
    @GetMapping("{id}")
    public String selectOne(@PathVariable("id") String sId) {
        return sId;
    }

    /**
     * 新增数据
     *
     * @param
     * @return 新增结果
     */
    @ApiOperation("方法用途描述：新增数据")
    @PutMapping("insert")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "name", value = "姓名", required = true, paramType = "query", dataType = "String", defaultValue = "张三"),
            @ApiImplicitParam(name = "age", value = "年龄", dataType = "Integer", paramType = "query")
    })
    public String insert(@RequestParam("name") String name, @RequestParam("age") int age) {
        return name + ":insert:" + age;
    }

    /**
     * 修改数据
     *
     * @param userRecord 实体对象
     * @return 修改结果
     */
    @ApiOperation("方法用途描述：修改数据")
    @PutMapping("update")
    public String update(@RequestBody UserRecord userRecord) {
        return userRecord.getName() + ":update:" + userRecord.getAge();
    }

    /**
     * 删除数据
     *
     * @param idList 主键结合
     * @return 删除结果
     */
    @ApiOperation("方法用途描述：删除数据")
    @DeleteMapping("delete")
    public boolean delete(@RequestParam("idList") List<Long> idList) {
        return false;
    }
}